1. Technical Field of the Invention
This invention relates to improvements in circuitry for driving polyphase motors, and more particularly to improvements in circuitry for driving polyphase dc motors, and still more particularly to a method and apparatus for relatively rapidly driving a polyphase motor for a disk drive from an inactive state to an operable state for performing a memory access.
2. Background of the Invention
Although the present invention pertains to multiphase and/or polyphase dc motors, in general, it finds particular application in conjunction with three phase dc motors, particularly of the brushless, sensorless type which are used for rotating data media, such as found in computer related applications, including hard disk drives, CD ROM drives, floppy disks, and the like. In computer applications, three phase brushless, sensorless dc motors are becoming more popular, due to their reliability, low weight, and accuracy.
Motors of this type can typically be thought of as having a stator with three coils connected in a xe2x80x9cYxe2x80x9d configuration, although actually, a larger number of stator coils are usually employed with multiple motor poles. Typically, in such applications, eight pole motors are used having twelve stator windings and four N-S magnetic sets on the rotor, resulting in four electrical cycles per revolution of the rotor. The stator coils, however, can be analyzed in terms of three xe2x80x9cYxe2x80x9d connected coils, connected in three sets of four coils, each physically separated by 90 degrees. In operation, the coils are energized in sequences, in each of which a current path is established through two coils of the xe2x80x9cYxe2x80x9d, with the third coil left floating. The sequences are arranged so that as the current paths are changed, or commutated, one of the coils of the current path is switched to float, and the previously floating coil is switched into the current path. Moreover, the sequence is defined such that when the floating coil is switched into the current path, current will flow in the same direction in the coil which was included in the prior current path. In this manner, six commutation sequences are defined for each electrical cycle in a three phase motor.
In the past, during the operation of a polyphase dc motor for a disk drive system, such as a spindle motor for spinning the disk media upon which data is stored, it has been recognized that maintaining a known position of the rotor of the motor is an important concern. There have been various ways by which this was implemented. The most widely used way, for example, was to start the spindle motor in a known position, then develop information related to the instantaneous or current position of the rotor. One source of such instantaneous position information was developed as a part of the commutation process, and involved identifying the floating coil, and monitoring its back emf, that is, the emf induced into the coil as it moves through the magnetic field provided by the stator.
When the voltage of the floating coil crossed zero (referred to in the art as xe2x80x9ca zero crossingxe2x80x9d), the position of the rotor was assumed to be known. Upon the occurrence of this event, the rotor coil commutation sequence was incremented to the next phase, and the process repeated. The assumption that the zero crossing accurately indicated the rotor position was generally correct if the spindle motor was functioning properly, and nothing had occurred which would disturb its synchronization from its known startup position. However, in reality, events occur which sometimes result in a loss of synchronization. Such a loss of synchronization may occur, for instance, if the spindle motor of the disk drive is slowed due to a relatively prolonged absence of requests to access the disk drive. The motor controller of the disk drive must thereafter determine the state of the rotor in order to appropriately respond to the reception of a memory access request. In particular, the motor controller must relatively rapidly spin up and/or increase the spin of the motor to an operable spin level before the requested memory access can occur.
Conventional disk drive systems attempted to quickly spin up the spindle motor from an inactive state by initially tri-stating the phase windings of the motor for a sufficient period of time to detect at least two consecutive zero crossings of the back emf signals associated with the phase windings. In the event the rotor is spinning very slowly, the amount of time necessary to detect consecutive zero crossings may undesirably approach several hundred milliseconds. Once consecutive zero crossings of the back emf signals are detected, thereby indicating a spinning rotor, a resynchronization procedure is executed to synchronize to the rotor spin the application of drive signals to the motor""s phase windings. In the event successive zero crossings of the back emf signals are not detected even after the lapse of several hundred milliseconds, an inductive sense routine is initiated to determine the position of the rotor, followed by executing a spin-up procedure to bring the spindle motor to the desired operable speed. Consequently, the delay related to returning rotor spin to operable levels may be excessive.
Based upon the foregoing, there is a need for a controller and method for controlling the motor of a disk drive to efficiently increase motor spin to operable spin speeds following periods of disk drive inactivity.
The present invention overcomes shortcomings in prior and existing disk drive systems and satisfies a significant need for high speed disk drive operation. According to a preferred embodiment of the present invention, a controller for a multiphase disk drive motor, such as the spindle motor, initially executes a sense operation following a period of disk drive inactivity so as to obtain an electrical characteristic of one or more phase windings of the motor. Having obtained the electrical characteristic, the controller determines whether or not the motor""s rotor is spinning as well as the current position of the rotor. In the event the rotor is determined to be spinning, the controller then executes a resynchronization operation to synchronize the application of the drive signals to the already spinning rotor. In the event the controller determines that the motor""s rotor is not spinning, a spin-up operation is executed by the controller to spin up the motor from the inactive state to an operable state. Because the time to execute the initial sense operation is substantially less than the time to execute the initial resynchronization operation in prior systems for a slowly moving rotor, the time to bring the rotor up to a spin level to suitably access the disk is markedly reduced.